package com.ruoyi.event.controller;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.event.config.WxSecurityUtils;
import org.springframework.web.bind.annotation.*;
import java.io.File;
import java.util.List;

@RestController
@RequestMapping("/event/check")
public class EventSecurityController {

    /**
     * 内容安全检测接口
     */
    @PostMapping("/security")
    public AjaxResult checkSecurity(@RequestBody SecurityCheckDTO checkDTO) {
        String OPENID = checkDTO.getOpenid();
        // 1. 检测文本
        List<String> textList = checkDTO.getTextList();
        for (String text : textList) {
            if (!WxSecurityUtils.checkText(text,OPENID)) {
                return AjaxResult.error("所发布内容含违规信息");
            }
        }

        // 2. 检测图片（需先下载图片到本地临时文件）
        List<String> imageList = checkDTO.getImageList();
        for (String imageUrl : imageList) {
            //File tempFile = downloadImageToTempFile(imageUrl); // 实现图片下载逻辑
            if (!WxSecurityUtils.checkImage(OPENID,imageUrl)) {
                //tempFile.delete(); // 删除临时文件
                return AjaxResult.error("所发布内容含违规信息");
            }
           // tempFile.delete(); // 检测通过后删除临时文件
        }

        return AjaxResult.success("内容安全");
    }

    // 辅助方法：下载图片到临时文件
    private File downloadImageToTempFile(String imageUrl) {
        // 实现从URL下载图片到本地临时文件的逻辑（略）
        // 注意：如果图片已存储在本地服务器，直接读取本地文件即可
        File tempFile = new File(imageUrl);
        return tempFile;
    }
}

// 数据传输类
class SecurityCheckDTO {

    private List<String> textList;
    private List<String> imageList;
    private String openid;
    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }


    public List<String> getTextList() {
        return textList;
    }

    public void setTextList(List<String> textList) {
        this.textList = textList;
    }

    public List<String> getImageList() {
        return imageList;
    }

    public void setImageList(List<String> imageList) {
        this.imageList = imageList;
    }

}